package com.dhcc.bpm.modules.scf.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dhcc.bpm.modules.scf.dto.ScfPaymentInfoDTO;
import com.dhcc.bpm.modules.scf.entity.ScfPaymentInfo;
import com.dhcc.bpm.modules.scf.vo.ScfPaymentInfoVO.ScfGetPaymentDetailsVO;
import com.dhcc.bpm.modules.scf.vo.ScfPaymentInfoVO.ScfGetPaymentListVO;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;


public interface IScfPaymentInfoService extends IService<ScfPaymentInfo> {
    /**
     * 自定义分页查询
     *
     * @param page
     * @param scfPaymentInfo
     * @return
     */
    IPage<ScfGetPaymentListVO> selectScfPaymentInfoPage(IPage<ScfGetPaymentListVO> page, ScfPaymentInfoDTO scfPaymentInfo);

    /**
     * 查询支付详情
     *
     * @param scfPaymentInfo
     * @return
     */
    ScfGetPaymentDetailsVO getDetail(ScfPaymentInfoDTO scfPaymentInfo);

    /**
     * 新增支付信息
     *
     * @param scfPaymentInfo
     * @return
     */
    Boolean savePaymentInfo(ScfPaymentInfoDTO scfPaymentInfo) throws Exception;

    /**
     * 导入支付信息
     *
     * @param scfPaymentInfos
     * @return
     */
    int bachSavePaymentInfo(List<ScfPaymentInfo> scfPaymentInfos, String operatorId);

    /**
     * 更新支付信息
     *
     * @param scfPaymentInfo
     * @return
     */
    Boolean updatePaymentInfo(ScfPaymentInfoDTO scfPaymentInfo);

    /**
     * 批量导入
     *
     * @param operatorId
     * @param file
     * @return
     * @throws IOException
     */
    List<ScfPaymentInfo> batchSaveScfPaymentInfo(String operatorId, MultipartFile file) throws IOException;

    Boolean deleteByIds(String[] split);
}
